home *** CD-ROM | disk | FTP | other *** search
/ Night Owl 6 / Night Owl's Shareware - PDSI-006 - Night Owl Corp (1990).iso / 039a / tclib20.zip / IBM.H < prev    next >
C/C++ Source or Header  |  1988-12-03  |  5KB  |  121 lines

  1. /* TCHK 2.0 - Howard Kapustein's Turbo C library       12-3-88 */
  2. /* Copyright (C) 1988, Howard Kapustein.  All rights reserved. */
  3.  
  4. /* ibm.h  -  header file for IBM.C - IBM specific functions */
  5.  
  6. #ifndef IBM_HEADER
  7. #define IBM_HEADER  1
  8.  
  9. #include <howard.h>
  10.  
  11. #ifndef IBM_HEX_ID
  12. #define PC              0xFF
  13. #define XT              0xFE
  14. #define Portable_PC     0xFE
  15. #define PCjr            0xFD
  16. #define AT              0xFC
  17. #define AT3x9           0xFC
  18. #define XT286           0xFC
  19. #define PS2_Model_50    0xFC
  20. #define PS2_Model_60    0xFC
  21. #define XT2             0xFB
  22. #define PS2_Model_25    0xFA
  23. #define PS2_Model_30    0xFA
  24. #define PC_Convertible  0xF9
  25. #define PS2_Model_80    0xF8
  26. #define Compaq          0x2D
  27. #define Compaq_Plus     0x9A
  28. /* above are ROM_id bytes, below are machine_id codes */
  29. #define PC_id               1
  30. #define XT_id               2
  31. #define Portable_PC_id      3          /* can't currently be identified */
  32. #define PCjr_id             4
  33. #define AT_id               5
  34. #define AT3x9_id            6
  35. #define XT2_id              7
  36. #define XT286_id            8
  37. #define PC_Convertible_id   9
  38. #define PS2_Model_25_id     10         /* ?, see docs */
  39. #define PS2_Model_30_id     11
  40. #define PS2_Model_50_id     12
  41. #define PS2_Model_60_id     13
  42. #define PS2_Model_80_id     14
  43. #define Unknown_id          99
  44. #define IBM_HEX_ID    1
  45. #endif
  46.  
  47. #ifndef MEM_STRATEGY
  48. #define MEM_STRAT_FIRST 0         /* use first mem block large enough */
  49. #define MEM_STRAT_BEST  1         /* use smallest mem block large enough */
  50. #define MEM_STRAT_LAST  2         /* use high part of last usable mem block */
  51. #define MEM_STRAT_BADDOS -1       /* using DOS earlier than 3.xx */
  52. #define MEM_STRATEGY    1
  53. #endif
  54.  
  55. #ifndef DISK_ID_BYTE
  56. #define DISK_DSDD_8     0xFF      /* Double-sided, 5 1/4" floppy, 8 sectors */
  57. #define DISK_SSDD_8     0xFE      /* Single-sided, 5 1/4" floppy, 8 sectors */
  58. #define DISK_SS8_8      0xFE      /* Single-sided, 8" floppy, 8 sectors */
  59. #define DISK_DSDD_9     0xFD      /* Double-sided, 5 1/4" floppy, 9 sectors */
  60. #define DISK_SSDD_9     0xFC      /* Single-sided floppy, 9 sectors */
  61. #define DISK_DSQD_15    0xF9      /* Double-sided, 5 1/4" floppy, 15 sectors */
  62. #define DISK_DS3_15     0xF9      /* Double-sided, 3 1/2" floppy, 9 sectors */
  63. #define DISK_HARD       0xF8      /* Hard disk */
  64. #define DISK_DS3_18     0xF0      /* Double-sided, 3 1/2" floppy, 18 sectors */
  65. #define DISK_UNDEFINED  0xF0      /* undefined media type */
  66. /* Note: if the disk is Single-sided, 8" 26 sectors,
  67.          it could have the id FE or FD                  */
  68. #define DISK_INVALID    0x1       /* invalid disk specified */
  69. #define DISK_ID_BYTE    1
  70. #endif
  71.  
  72. #ifndef EMS_CODES
  73. #define EMS_SUCCESS         0x00        /* success */
  74. #define EMS_ERROR_SOFTWARE  0x80        /* error in EMM software */
  75. #define EMS_ERROR_HARDWARE  0x81        /* malfunction in EM hardware */
  76. #define EMS_ERROR_UNDEFINED 0x84        /* function requested not defined */
  77. #define EMS_CODES   1
  78. #endif
  79.  
  80. typedef struct EMSrecord {
  81.             unsigned int handle;
  82.             unsigned int totalpages;
  83.             unsigned int availpages;
  84.             byte version;
  85.             byte emserror;
  86.         };
  87.  
  88. #ifndef IBM_DEFINES
  89. #define TIMER_TICKS *((long far *) 0x46Clu)  /* Timer tick count */
  90. #define isBREAKon()     (getcbrk()==1?TRUE:FALSE)
  91. #define setBREAK(b)     setcbrk(b)
  92. #define isVERIFYon()    (getverify()==1?TRUE:FALSE)
  93. #define setVERIFY(v)    setverify(b)
  94. #define IBM_DEFINES
  95. #endif
  96.  
  97. /* function prototypes */
  98. byte ROM_id(void);                      /* get ROM id */
  99. char *ROM_date(void);                   /* get ROM date */
  100. boolean isNetwork(void);                /* is a Network installed */
  101. boolean isExtended(void);               /* is Extended memory available */
  102. boolean iskey102(void);                 /* is keyboard 101/102 keys */
  103. int Extendedtotal(void);                /* total amount of Extended memory (in K) */
  104. int machine_id(void);                   /* determine machine id */
  105. boolean isBlogical(void);               /* is B: physical or logical */
  106.  
  107. void beep(void);                        /* beep speaker */
  108. boolean diskchanged(int drive);         /* disk change detected: AT, XT2, XT286, Convertible and PS/2 only */
  109. byte disktype(byte drive);              /* type of disk (0=default, A=1, etc.) */
  110. boolean isgameport(void);               /* is game port available */
  111. void reboot(boolean warmboot);          /* reboot, warmboot vs. coldboot */
  112.  
  113. boolean isEMSavail(void);               /* is EMS available */
  114. byte getEMSstatus(void);                /* get EMS status */
  115. boolean EMMversion(byte *version);      /* version or (on failure) error code */
  116. boolean EMSpages(struct EMSrecord *ems);    /* total/available amount of EMS */
  117. boolean EMSinfo(struct EMSrecord *ems);     /* EMS version and total/available pages */
  118. int EMSwarmbootprep(void);                  /* Prep EMS hardware for warm boot: LIM EMS 4.0 */
  119.  
  120. #endif              /* IBM_HEADER */
  121.